Portfolios: Efficient Frontier


Kerry Back

BUSI 721, Fall 2022
JGSB, Rice University

Simplifying Assumptions

  1. Borrow and save at same rate
  2. Can short w/o borrowing fee
  3. Get full interest rate on short sale proceeds
  4. No margin requirements

Model

  • \(\text{n}\) risky assets plus risk-free asset with return \(r_{f}\)
  • Portfolio is \((w_{1},\cdots,w_{n})\)
  • If “risky assets only,” then \(\sum w_{i}=1\)
  • If risk-free asset, risk-free position is \(1-\sum w_{i}\) and \(w_{i}\) are unconstrained

3B

HTML tutorial

GMV Portfolio

GMV = Global Minimum Variance portfolio of risky assets only
Can find with calculus

Calculating GMV Portfolio

Two risky assets:

\[\small \frac{w_{A}}{w_{B}}=\frac{\sigma^2_{B}-\rho\sigma_{A}\sigma_{B}}{\sigma^2_{A}-\rho\sigma_{A}\sigma_{B}}\]

Examples:

  • Equal std devs \(\rightarrow\) \(w_{A}=w_{B}\)
  • Uncorrelated \(\rightarrow\) \(w_{A}\sigma_{A}^2=w_{B}\sigma_{B}^2\)

\(\text{n}\) risky assets: vector of weights has same inner product with each column of covariance matrix (\(n-1\) equations)

\[\small \frac{w^{⊤}Cov_{i}}{w^{⊤}Cov_{j}}=1\] and \(\small \sum w_{i}=1\).

import numpy as np

# standard deviations
sds = np.array([0.15, 0.25, 0.35])
S = np.diag(sds)

# correlations
r12 = 0.15
r13 = 0.6
r23 = 0.3

R = np.identity(3)
R[0, 1] = R[1, 0] = r12
R[0, 2] = R[2, 0] = r13
R[1, 2] = R[2, 1] = r23

# covariance matrix
C = S @ R @ S

# GMV portfolio
w = np.linalg.solve(C, np.ones(3))
w = w / np.sum(w)

\(w_{1}\)=0.89 \(w_{2}\)=0.25 \(w_{3}\)=-0.14

Risky-Only Frontier

For any target expected return, find the minimum variance portfolio.

Set of (std dev, mean) pairs is called the mean-variance frontier (of risky assets).

Similar optimization problem to GMV portfolio.

3E

HTML tutorial

Tangency Portfolio

Combining risk-free asset with any portfolio
\(\rightarrow\) line from \(r_{f}\) through the (std dev, mean) of the portfolio.

Slope of the line is the Sharpe ratio.

Goal is to go northwest in the diagram (higher Sharpe ratio).

Line with highest Sharpe ratio is tangent to the risky-asset-only frontier.

3G

HTML tutorial

Calculating Tangency Portfolio

As with the GMV portfolio, we can represent the tangency portfolio using calculus.

The inner product of the tangency portfolio with each column of the covariance matrix is proportional to the asset’s risk premium:

\[\frac{w^{⊤}Cov_{i}}{w^{⊤}Cov_{j}}=\frac{\bar{r}_{i}-r_{f}}{\bar{r}_{j}-r_{f}}\]

and \(\sum w_{i}=1.\)

import numpy as np

# standard deviations
sds = np.array([0.15, 0.25, 0.35])
S = np.diag(sds)

# correlations
r12 = 0.15
r13 = 0.6
r23 = 0.3

R = np.identity(3)
R[0, 1] = R[1, 0] = r12
R[0, 2] = R[2, 0] = r13
R[1, 2] = R[2, 1] = r23

# covariance matrix
C = S @ R @ S

# GMV portfolio
w = np.linalg.solve(C, np.ones(3))
w = w / np.sum(w)

\(w_{1}\)=0.37 \(w_{2}\)=0.58 \(w_{3}\)=0.05

3H

HTML tutorial